/**
 * 列表型数据 -> 树形数据
 * params list 列表数据 rootValue 根节点 / 根部门 -> 传智教育
 * */
export function translateListToTreeData(list, rootValue) {
  // [
  //   {
  //     name: '传智教育', // 一级
  //     children: [
  //       {
  //         name: '财务部', // 二级
  //         children: [xxxx]
  //       },
  //       {
  //         name: '行政部' // 二级
  //       },
  //       {
  //         name: '总裁办' // 二级
  //       }
  //     ]
  //   }
  // ]

  const arr = [] // 树形数据

  // 核心逻辑: 遍历列表数据 -> 递归思想 -> 找规律 -> 生成树形数据
  list.forEach(item => {
    // 1. 找到根部门 -> 先确定一级 / 再确定二级 / ...
    if (item.pid === rootValue) {
      // console.log('根部门', item) // 一级部门
      // 2. 根据规律查找二级 / 三级 / 四级....
      // 递归特点: 自己调用自己, 必须要有出口/结束条件
      // 递归场景: 一般用来处理未知层级的数据
      // 查找原则: 通过父级找子级 -> 传入父级部门的id  -> 子级的pid 和 父级id一致
      const children = translateListToTreeData(list, item.id)
      item.children = children

      arr.push(item)
    }
  })

  return arr // 返回转换成功后的树形数据
}
